﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace PhotoGallery.Models
{
    public class FileUploadResult
    {
        /// <summary>
        /// 服务端返回码，如果没有发生任何错误取值为0；
        /// 如果发生错误该参数指称具体的错误码。COS服务相关的错误码可以查看 COS 错误码汇总
        /// </summary>
        public int code { get; set; }

        /// <summary>
        /// 服务端提示内容，如果发生错误该字段将详细描述发生错误的情况。
        /// </summary>
        public string message { get; set; }

        /// <summary>
        /// 该请求的唯一标识 id
        /// </summary>
        public string request_id { get; set; }

        /// <summary>
        /// 服务端返回的应答数据，该内容代表了接口返回的具体的业务数据。
        /// </summary>
        public Data data { get; set; }
    }

    public class Data
    {
        /// <summary>
        /// 通过 CDN 访问该文件的资源链接（访问速度更快）
        /// </summary>
        public string access_url { get; set; }


        /// <summary>
        /// 该文件在 COS 中的相对路径名，可作为其 ID 标识。 
        /// 格式/&lt;APPID&gt;/&lt;BucketName&gt;/&lt;ObjectName&gt;。
        /// 推荐业务端存储 resource_path，然后根据业务需求灵活拼接资源 url
        /// 通过 CDN 访问 COS 资源的 url 和直接访问 COS 资源的 url 不同）
        /// </summary>
        public string resource_path { get; set; }

        /// <summary>
        /// （不通过 CDN）直接访问 COS 的资源链接
        /// </summary>
        public string source_url { get; set; }

        /// <summary>
        /// 操作文件的 url 。业务端可以将该 url 作为请求地址来进一步操作文件，
        /// 对应 API ：文件属性、更新文件、删除文件、移动文件中的请求地址。
        /// </summary>
        public string url { get; set; }
    }

    /*
     错误码
最近更新时间：2017-06-26 10:26:23
 查看pdf
错误码	描述
-5999	请求参数错误
-5997	内部错误，联系官方处理
-5996	HTTP请求方法错误，或者没有发送HTTP请求方法
-5994	url路径不符合规范
-5993	formdata body格式不正确
-5991	append接口，大于5G的追加上传
-5980	"没有op字段，用户没填写操作类型或格式错误解析不到"
-5975	请求的json格式不正确
-5971	分片上传init时没有填写文件大小
-5970	refer白名单数量必须小于等于10
-5969	cname数量必须小于等于10
-5968	refer黑名单数量必须小于等于10
-5967	密钥数量必须小于等于10
-5966	list参数非数字或者大于1000
-5965	分片上传init时未指定slice_size参数
-5965	分片上传init时uploadparts参数不合法
-5964	参数op填写错误，没有此操作
-5963	读取数据超时，检查网络是否过慢或上传并发数过大
-5962	XML解析失败，请求携带的XML不符合规范
-5961	请求body体的Content-MD5不符合预期
-5957	操作不存在的bucket
-5949	copy文件时查询源文件信息失败
-5947	biz_attr最大4K
-5946	缺少头域CONTENT_MD5，有些接口必须校验内容
-5945	内部错误，联系官方处理
-5939	内部错误，联系官方处理
-5938	内部错误，联系官方处理
-5937	内部错误，联系官方处理
-4020	文件已存在，但未完成上传，新传文件sha值和该未完成文件不一致
-4019	文件已存在，但未完成上传，新传文件sha值和该未完成文件一致，可断点续传
-4018	文件已存在，并且已完成上传
-4016	上传文件数据sha与请求sha校验失败
-288	内部错误，联系官方处理
-287	内部错误，联系官方处理
-285	上传文件大小大于限制
-284	上传文件数据请求每片数据大小与初始化的分片大小不同
-283	分片上传分片小于限制，或者append文件小于4K
-281	分片上传分片大于限制
-197	该文件不存在
-196	内部错误，联系官方处理
-195	内部错误，联系官方处理
-194	内部错误，联系官方处理
-185	内部错误，联系官方处理
-184	内部错误，联系官方处理
-183	内部错误，联系官方处理
-181	内部错误，联系官方处理
-180	路径错误，可能是url超过长度限制，非法字符等原因
-178	路径冲突，要上传的文件或者目录已经存在
-177	文件已存在，但是和新要上传的文件sha值不一致，可用覆盖上传覆盖掉原来的文件
-176	创建的bucket已经存在
-175	上传的文件大小和指定的content-length不一致
-173	删除非空的bucket
-172	bucket数量超过200个限制
-134	bucket不支持跨域访问
-133	bucket不存在
-121	"匹配跨域规则失败，可能 Origin / request method / Access-Control-Request-Method 或 Access-Control-Requet-Headers不在跨域规则配置里面"
-120	uploadid不存在
-119	内部错误，联系官方处理
-118	上传块编号找不到
-117	分块上传finish时块编号不连续
-116	内部错误，联系官方处理
-101	"不需要拷贝,可能上次更新时间/ETag规则匹配问题"
-100	copy的前置条件冲突
-99	内部错误，联系官方处理
-98	内部错误，联系官方处理
-97	签名校验失败
-96	签名过期
-85	内部错误，联系官方处理
-83	内部错误，联系官方处理
-81	签名为空（需鉴权的操作提供签名为空）
-79	secret id不存在
-77	单次性签名已被使用过
-76	单次签名没有指定f参数
-75	内部错误，联系官方处理
-74	多次签名-过期时间为0
-73	单次签名-过期时间不为0
-71	"操作太频繁，请稍后再试"
-70	请求的appid和签名中的appid不匹配
-66	内部错误，联系官方处理）
-64	secretid中的uid和签名中的appid不匹配
-63	请求中的uri与签名中的f不匹配
-62	secretid可能填错或联系官方处理
-59	s3签名过期
-58	内部错误，联系官方处理
-57	签名缺失必填字段
-56	签名中的header未排序
-55	用户没有此操作权限
-53	签名有效期区间设置过长，最多设置一个月
-29175	内部错误，联系官方处理
-29173	分块上传不应指定存储介质
-29172	内部错误，联系官方处理
-29171	内部错误，联系官方处理
-29170	内部错误，联系官方处理
-29169	内部错误，联系官方处理
-29168	内部错误，联系官方处理
-29166	list分块请求没有携带UploadID
-29165	内部错误，联系官方处理
-29164	内部错误，联系官方处理
-29163	内部错误，联系官方处理
-29162	内部错误，联系官方处理
-29161	分片上传完成接口指定的Etag长度错误
-29159	结束上传分片请求body为空
-29156	内部错误，联系官方处理
-29155	内部错误，联系官方处理
-29150	内部错误，联系官方处理
-29148	内部错误，联系官方处理
-29147	JSON API接口md5并发上传时，读取分片的内容和上传内容不一致
-29146	内部错误，联系官方处理
-29145	内部错误，联系官方处理
-29143	上传文件MD5校验失败
-29141	分片上传init指定的filesize错误
-29140	内部错误，联系官方处理
-29138	v4分片上传，sha值校验失败
-29137	内部错误，联系官方处理
-29136	相同的文件请使用断点续传，不要删除后重传
-29134	初始化分片上传指定的分片大小不符合规范
-29133	内部错误，联系官方处理
-29132	内部错误，联系官方处理
-29131	内部错误，联系官方处理
-29130	内部错误，联系官方处理
-29129	下载文件时文件尚未完成上传
-29128	内部错误，联系官方处理
-29126	初始化分片上传未指定filesize参数
-29125	内部错误，联系官方处理
-29124	内部错误，联系官方处理
-29123	内部错误，联系官方处理
-29119	内部错误，联系官方处理
-29118	内部错误，联系官方处理
-29117	内部错误，联系官方处理
-29115	内部错误，联系官方处理
-29114	内部错误，联系官方处理
-29112	内部错误，联系官方处理
-29111	内部错误，联系官方处理
-29110	请求json格式错误
-29109	内部错误，联系官方处理
-29108	内部错误，联系官方处理
-29107	内部错误，联系官方处理
-29106	内部错误，联系官方处理
-29105	JSON API上传的文件超过系统限制，限制为64G
-29104	结束上传分片未指定filesize参数
-29103	上传时sessionid传错
-29102	内部错误，联系官方处理
-29101	内部错误，联系官方处理
-29100	内部错误，联系官方处理
-29099	内部错误，联系官方处理
-29098	用户上传数据偏移量不是每块的整数倍错误
-29096	传的sessionid不合法
-29094	传的sessionid不合法
-29093	传的sessionid不合法
-29088	内部错误，联系官方处理
-29087	内部错误，联系官方处理
-29086	内部错误，联系官方处理
-29085	内部错误，联系官方处理
-29084	内部错误，联系官方处理
-29083	内部错误，联系官方处理
-29082	内部错误，联系官方处理
-29081	内部错误，联系官方处理
-29080	内部错误，联系官方处理
-29070	内部错误，联系官方处理
-29069	内部错误，联系官方处理
-29066	内部错误，联系官方处理
-29063	分片md5不一致
-29044	内部错误，联系官方处理
-29043	文件不存在
-29037	If-Modified-Since用户头部If-Modified-Since时间格式错误
-29036	文件未上传完成，不允许下载
-29034	下载的offset大于文件的fsize
-29033	下载请求没有有效的range
-29031	内部错误
-29027	内部错误，联系官方处理
-29026	内部错误，联系官方处理
-29021	上传文件sessionid传输错误
-29015	HEADER字段中没有host或者host错误
-29012	内部错误，联系官方处理
-29011	内部错误，联系官方处理
-29010	内部错误，联系官方处理
-29003	内部错误，联系官方处理
-29002	内部错误，联系官方处理
-29001	内部错误，联系官方处理
-29000	内部错误，联系官方处理
101	内部错误，联系官方处理
100	内部错误，联系官方处理
-29993	内部错误，联系官方处理
-29992	内部错误，联系官方处理
-29991	内部错误，联系官方处理
-46642	appid不存在
-46641	多版本下的文件不存在
-46640	内部错误，联系官方处理
-46639	内部错误，联系官方处理
-46638	内部错误，联系官方处理
-46637	内部错误，联系官方处理
-46636	内部错误，联系官方处理
-46635	内部错误，联系官方处理
-46634	内部错误，联系官方处理
-46632	追加文件长度为0
-46627	用户在黑名单里面
-46626	内部错误，联系官方处理
-46622	非法分片大小
-46621	文件被封禁，可能涉黄政治敏感信息被封禁
-46620	bucket被封禁，可能qps过高，恶意攻击被后台封禁
-46619	签名过期，可能生成签名机器的时间跟北京时间不一致，或者用户拿着签名过期串访问
-46618	签名校验失败，用户签名算法错误，秘钥被禁用，appid和秘钥对不上等错误
-46617	bucket的refer黑名单配置了访问的refer域名
-46616	bucket的refer白名单没有配置访问的refer域名
-46615	bucket禁止访问，可能您的bucket访问量过大或欠费或违反了政策法规导致的封禁
-46614	文件没有完成上传，只传了一部分，检查上传时候有无报错
-46613	自定义的biz_attr过大，目前最大4K
-46607	内部错误，联系官方处理
-46601	内部错误，联系官方处理
-46313	内部错误，联系官方处理
-46312	内部错误，联系官方处理
-46311	内部错误，联系官方处理
-46310	内部错误，联系官方处理
-46309	内部错误，联系官方处理
-46308	内部错误，联系官方处理
-46307	内部错误，联系官方处理
-46306	内部错误，联系官方处理
-46305	内部错误，联系官方处理
-46304	内部错误，联系官方处理
-46303	内部错误，联系官方处理
-46302	内部错误，联系官方处理
-46301	内部错误，联系官方处理
-46212	内部错误，联系官方处理
-46211	内部错误，联系官方处理
-46210	内部错误，联系官方处理
-46209	上传时versionid不正确
-46208	相同的文件名已存在，并且是目录
-46207	内部错误，联系官方处理
-46206	内部错误，联系官方处理
-46205	内部错误，联系官方处理
-46204	跨域设置时候规则超长，最大100KB
-46203	跨域设置时候规则超长，最大100KB
-46202	内部错误，联系官方处理
-46201	内部错误，联系官方处理
-46200	批量删除时，数量过大，最多1000个
-46199	分块上传finish时，传入的各个分块的Etag值与系统对不上
-46198	在非追加类型的文件上追加数据
-46197	追加上传时，offset和cos上文件大小不一致
-46196	内部错误，联系官方处理
-46195	内部错误，联系官方处理
-46194	内部错误，联系官方处理
-46193	内部错误，联系官方处理
-46192	内部错误，联系官方处理
-46191	内部错误，联系官方处理
-46190	内部错误，联系官方处理
-46189	内部错误，联系官方处理
-46188	跨域设置时候规则超长，最大100KB
-46187	跨域设置的规则参数有误
-46186	设置跨域时标志有误
-46185	自定义header超长，最大4KB
-46184	内部错误，联系官方处理
-46183	内部错误，联系官方处理
-46182	内部错误，联系官方处理
-46181	refer长度过长，最大3K
-46180	签名过长，最大2K
-46179	封禁文件时，标志传错
-46178	查询文件列表时，delimiter长度大于1
-46177	list时填的offset长度超过path长度限制
-46176	biz attr长度非法，最大4K
-46175	内部错误，联系官方处理
-46174	内部错误，联系官方处理
-46173	内部错误，联系官方处理
-46172	内部错误，联系官方处理
-46171	内部错误，联系官方处理
-46170	下载文件时，host值传的不对
-46169	内部错误，联系官方处理
-46168	内部错误，联系官方处理
-46158	内部错误，联系官方处理
-46105	内部错误，联系官方处理
-46104	内部错误，联系官方处理
-46103	内部错误，联系官方处理
-46102	内部错误，联系官方处理
-46101	内部错误，联系官方处理
-46031	内部错误，联系官方处理
-46030	内部错误，联系官方处理
-46026	内部错误，联系官方处理
-46025	内部错误，联系官方处理
-46024	内部错误，联系官方处理
-46023	内部错误，联系官方处理
-46022	内部错误，联系官方处理
-46021	内部错误，联系官方处理
-46020	内部错误，联系官方处理
-46007	内部错误，联系官方处理
-46005	内部错误，联系官方处理
-46004	内部错误，联系官方处理
-46003	内部错误，联系官方处理
-46002	内部错误，联系官方处理
-46001	内部错误，联系官方处理
-50122	内部错误，联系官方处理
     
     */


}
